<!DOCTYPE html>
<html lang="en">
    <head>
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <title>实验1</title>
    </head>
    <body>
        <div>
            第一题
        </div>
        <script>
            (function(){
               function getSum(num1,num2){
                var sum = num1 + num2;
                console.log(num1+"+"+num2+"="+(num1+num2));
               }
                //第一题的代码
            })();
        </script>
   
   <div>
    第二题
   </div>
   <script>
    (function(){
           var getProduct = function(num1,num2){
            console.log(num1+"*"+num2+"="+num1*num2);
           }  
           getProduct(2,4);
        //第二题的代码，getProduct函数通过var定义，而var存在变量提升现象，其中没有值，所以被赋值为undefined
            })();
   </script>

<div>
    第三题
   </div>
   <script>
    (function(){
           var a=100;
           function test(){
            console.log(a);
            a = 10;//函数内为隐式定义，var为全局变量
            console.log(a);
           }
          test();
          console.log(a);//a为全局变量a=10
        //第三题的代码
            })();
   </script>

<div>
    第四题
   </div>
   <script>
    (function(){
           var a=10;//a为全局变量，不会调用在函数内
           fun1();
           function fun1(){
            var b = 20;
            console.log(a);//a没有先赋值，因此a取undefined
            console.log(b);//b=20
            var a=30;
           }
        //第四题的代码
            })();
   </script>

<div>
    第五题
   </div>
   <script>
    (function(){
           function fun2(a,b){
            console.log(arguments[0]);
            console.log(arguments[1]);
            console.log(arguments[2]);
           }
           fun2(1,2,3);
        //第五题的代码
            })();
   </script>

<div>
    第六题
   </div>
   <script>
    (function(){
        for(i=0;i<3;i++){
                console.log(arguments[i]);
            }
        })(1,2,3);
        //第六题的代码
   </script>

<div>
    第七题
   </div>
   <script>
    (function(){
        "use strict";//严格模式
          num = 100;//在严格模式下，要定义才能进行赋值
        //第七题的代码
            })();
   </script>

<div>
    第八题
   </div>
   <script>
    (function(){
        "use strict";
        var b =10;
      //  a=100;
      //  console.log(a);
        console.log(b);//在严格模式下，要先解决报错，否则不能运行下面
        //第八题的代码
            })();
   </script>

<div>
    第九题
   </div>
   <script>
    (function(){
        "use strict";
        try{
            var b=10;
             a=100;
            console.log(a);
            console.log(b);//在严格模式下，要先解决报错，否则不能运行下面
        }
        catch(error){  // error
            console.info(error);
        }
        var c = 100;
        console.info(c);
        //第九题的代码
            })();
   </script>
</body>
